//////////////////////////////////////////////////////////////////////////
//
// GAM203
// Math Helper
// Math.h
// 
// Grant Johnson
// Qantm College
// 27/10/2010
//
//////////////////////////////////////////////////////////////////////////

#ifndef RENDERWINDOW_H
#define RENDERWINDOW_H

//Windows
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include "Timer.h"

class MainWindow;
class LeftChild;
class MiddleChild;
class RightChild;

class RenderWindow
{
public:
	RenderWindow();
	~RenderWindow();

	//////////////////////////////////////////////////////////////////////////
	// Setup the WinAPI Render Window
	//
	// Paramaters:
	// a_className, Class name given to the window
	// a_windowName, Name given to the window (displayed on top bar)
	// a_width, Width of the window
	// a_height, Height of the window
	// a_hInst, an Instance Handle
	// a_consoleEnabled, whether or not to enable the console for debugging
	//
	// Returns false if any step of the setup failed
	// Returns true if setup successfully
	//
	//////////////////////////////////////////////////////////////////////////
	bool Setup(char* a_windowName, int a_width, int a_height, HINSTANCE a_hInst);

	//////////////////////////////////////////////////////////////////////////
	// Get the Delta Time
	//
	// Paramaters:
	// None
	//
	// Returns the time elapsed since the last update - Delta Time
	//
	//////////////////////////////////////////////////////////////////////////
	float GetDeltaTime();

	void Update();

private:

	MainWindow* m_pMainWindow;
	LeftChild* m_pLeftChild;
	MiddleChild* m_pMiddleChild;
	RightChild* m_pRightChild;

	//Instance of the timer class, used for delta time
	Timer m_timer;
};

#endif //RENDERWINDOW_H